package com.aaa.controller;

import com.aaa.entity.Staff;
import com.aaa.service.StaffService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.naming.Name;
import java.util.List;
import java.util.Map;

@RequestMapping("staff")
@RestController
public class StaffController {

    @Resource
    private StaffService staffService;

    @RequestMapping("query")
    public PageInfo<Staff> query(String phone, Integer pageNum, Integer pageSize){
        return staffService.query(phone,pageNum,pageSize);
    }

    @RequestMapping("findAll")
    public List<Map<String, Object>> findAll(Integer id,String sname,String phone, String idcard) {
        return staffService.findAll(id,sname,phone,idcard);
    }

    /**
     * 请求插入入职员工信息
     * @param sname 姓名
     * @param phone 手机号
     * @param idcard 身份证号
     * @param sex 性别
     * @param pswd 密码
     * @param state 状态
     * @return 响应结果
     */
    @RequestMapping("addStaff")
    public Integer addStaff(String sname, String phone, String idcard, String sex, String pswd, String state){
        return staffService.addStaff(sname,phone,idcard,sex,pswd,state);
    }

    /**
     * 请求重置密码
     * @param id 根据id
     * @param pswd 密码对象
     * @return 返回结果
     */
    @RequestMapping("updStaffPswd")
    public Integer updStaffPswd(Integer id, String pswd) {
        return staffService.updStaffPswd(id,pswd);
    }

    /**
     * 前台发送请求修改员工信息
     * @param id 根据主键id
     * @param sname 员工账号
     * @param phone 手机号
     * @param idcard 身份证号
     * @param
     * @return 返回响应结果
     */
    @RequestMapping("updateStaff")
    public Integer uodateStaff1(Integer id,String sname, String phone, String idcard){
        return staffService.uodateStaff1(id,sname,phone,idcard,null);
    }

    /**
     * 请求修改状态
     * @param id 根据id
     * @param state 状态
     * @return 请求结果返回
     */
    @RequestMapping("updateState")
    public Integer updateState(Integer id, String state) {
        return staffService.updateState(id,state);
    }


    /**
     * 请求查询数据
     * @param id 请求参数
     * @return 数据返回结果
     */
    @RequestMapping("findById")
    public Staff findById(Integer id) {
        return staffService.findById(id);
    }


    /**
     * 请求查询个人信息调用的登录SQL
     * @param sname
     * @return
     */
    @RequestMapping("staffPers")
    public Staff staffPers(String sname) {
        System.out.println(sname);
        return staffService.login(sname);
    }

    @RequestMapping("edit")
    public Integer edit(String sname,String pswd){
        return staffService.edit(sname,pswd);
    }
}
